package org.blade.personal.framework.orm.base;

import org.blade.personal.framework.components.metadata.TypeMetaData;
import org.blade.personal.framework.dsl.express.Expression;
import org.blade.personal.framework.orm.AbstractTypeAlias;
import org.blade.personal.framework.orm.TypeAlias;

/**
 * 浮点类型别名类
 * 
 * @author ZGF
 * @version 0.1
 */
public class FloatAlias extends AbstractTypeAlias<Float> implements
		TypeAlias<Float> {

	public FloatAlias(TypeMetaData<Float> mateData) {
		super(mateData);
	}

	/**
	 * 初始化方法，构建一个属性的sql表达式
	 * 
	 * @param attr 属性
	 * @param clause 当前子句
	 * @param alise 实体别名
	 * @param sqlAlise 一个完整查询的别名
	 * @param type 属性对应的java类型别名
	 * @param expr 最终表达式
	 */
	public FloatAlias(Attribute<Float> attr, String clause, String alise,
			String sqlAlise, String type, Expression expr) {

		TypeMetaData<Float> metaData = new TypeMetaData<Float>(attr,  clause,  alias,
				 sqlAlise,  type,  null);
		this.init(metaData);	
	}

	public FloatAlias() {
		super();
	}
	
	public FloatAlias(String name, Float value,
			String table, String tableAlise, String javaType) {
		this.attr = new Attribute<Float>(name, value, table);
		this.alias = tableAlise;
		this.type = javaType;
	}

	/**
	 * 
	 */
	public TypeAlias<Float> setAlise(String alise) {
		this.alias = alise;
		return this;
	}

}
